package com.ruoyi.water.utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import static cn.hutool.core.lang.Console.print;
import static com.baomidou.mybatisplus.extension.ddl.DdlScriptErrorHandler.PrintlnLogErrorHandler.log;


public class ElementIdExtractor{

    /**
     * 提取文本中"号"前面的数字，根据是否包含"反向"添加符号，返回Integer类型
     * @param text 待处理文本
     * @return 带符号的整数，如-3、10等，无匹配时返回null
     */
    public static Integer extractIdWithDirection(String text) {
        boolean isReverse = text.contains("反向");

        // 正则表达式优化：匹配最后一个"号"字前面的数字
        // (\\d+)(?=号(?!.*号)) 表示：
        // 1. \\d+ 匹配数字
        // 2. (?=号) 确保后面是"号"
        // 3. (?!.*号) 负向预查，确保这个"号"后面没有其他"号"（即最后一个"号"）
        Pattern pattern = Pattern.compile("(\\d+)(?=号(?!.*号))");
        Matcher matcher = pattern.matcher(text);

        if (matcher.find()) {
            int number = Integer.parseInt(matcher.group(1));
            return isReverse ? -number : number;
        }

        return null;
    }
}

